package com.jialianiot.myapplication;

import android.annotation.SuppressLint;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

//    private ViewPager viewpager;
//    private MyPagerAdapter myPagerAdapter;
//    private static int pageNumber = 9; // 模块总数
//    private boolean isDragging = false; // 拖动是否为真，辅助判断图片触摸事件
//
//    // ArrayList不安全但是效率高
//    // 这里是用于准备数据，这个就是图片数据的集合
//    private ArrayList<ImageView> imageViews;
//    // 图片资源ID集合
//    private final int[] imageIds = {R.mipmap.s1,R.mipmap.s2,R.mipmap.s1,R.mipmap.s2,R.mipmap.s1,
//            R.mipmap.s2,R.mipmap.s1,R.mipmap.s2,R.mipmap.s1};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_3);

//        viewpager = findViewById(R.id.viewpager);

//        initViewPager();
    }

//    private void initViewPager() {
//        // ViewPager的使用
//        // 1、在布局文件中定义ViewPager
//        // 2、在代码中实例化ViewPager
//        // 3、准备数据
//        // 4、设置适配器(PagerAdapter)-item布局-绑定数据
//        imageViews = new ArrayList<>();
//        for (int i = 0; i < imageIds.length;i++) {
//            ImageView imageView = new ImageView(this);
//            // 设置src会按比例填充，但是设置background会拉伸填充
//            // 我们要的效果是拉伸填充，所以这里使用setBackgroundResource
//            imageView.setBackgroundResource(imageIds[i]);
//            // 添加到集合中
//            imageViews.add(imageView);
//            // 添加点点
//            ImageView point = new ImageView(this);
////            point.setBackgroundResource(R.drawable.point_selector);
//            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(8,8);
//            if (i==0){
////                point.setEnabled(true); // 显示红色
//            }else {
////                point.setEnabled(false); // 显示灰色
//                params.leftMargin = 8;
//            }
////            point.setLayoutParams(params);
////            ll_point_group.addView(point);
//        }
//        myPagerAdapter = new MyPagerAdapter();
//        viewpager.setAdapter(myPagerAdapter);
//        viewpager.addOnPageChangeListener(new MyOnPageChangeListener());
//        // 设置标题
////        tv_title.setText(imageDescriptions[0]);
////        tv_body.setText(imageDescriptions2[0]);
//        // 发消息
////        handler.sendEmptyMessageDelayed(0,20*1000);
//        handler.sendEmptyMessageDelayed(0,1);
////        rl_viewpager.setVisibility(View.GONE); // viewpager控件 隐藏
//    }
//
//
//    class MyPagerAdapter extends PagerAdapter {
//
//        /**
//         * @return 图片的总数
//         */
//        @Override
//        public int getCount() {
//            return pageNumber;
//        }
//
//        /**
//         * 相当于getView方法
//         * @param container ViewPager自身
//         * @param position 当前实例化页面的位置
//         * @return
//         */
//        @SuppressLint("ClickableViewAccessibility")
//        @Override
//        public Object instantiateItem(ViewGroup container, int position) {
//
//            int realPosition = position%imageViews.size();
//            // ImageView imageView = imageViews.get(position);
//            ImageView imageView = imageViews.get(realPosition);
//
//            container.addView(imageView); // 把图片添加到ViewPager容器中
//
//            /**
//             * 添加触摸事件，当图片被触摸，停止自动播放，当触摸停止，继续自动播放
//             * 像Demo这样，0.5秒时间间隔，可能有按不住的情况，动得太快了，这边是为了演示
//             * 时间使用，建议轮播时间时间3-4
//             * 但是，只在这里判断是不够，当用户开始滑动图片，优先调用ACTION_CANCEL，不会
//             * 调用到ACTION_MOVE，这里需要详细了解可以Log一下这几个触摸事件看一下，系统是
//             * 如何接受用户触摸事件的
//             * 所以还需要在MyOnPageChangeListener的onPageScrollStateChanged
//             * 的方法里，添加判断
//             */
//            imageView.setOnTouchListener(new View.OnTouchListener() {
//                @Override
//                public boolean onTouch(View view, MotionEvent motionEvent) {
//                    switch (motionEvent.getAction()){
//                        case MotionEvent.ACTION_DOWN: // 按下
//                            handler.removeCallbacksAndMessages(null);
//                            break;
//                        case MotionEvent.ACTION_UP: // 抬起
//                            handler.removeCallbacksAndMessages(null);
//                            handler.sendEmptyMessageDelayed(0,20*1000);
//                            break;
//                        case MotionEvent.ACTION_CANCEL: // 取消
//                            break;
//                        case MotionEvent.ACTION_MOVE: // 移动
//                            break;
//                    }
//                    return false; // 返回为false事件继续，返回true事件销毁，因为要监听图片点击，所以不能销毁
//                }
//            });
//
//            return imageView;
//        }
//
//        /**
//         * 比较view和object是否是同一个实力
//         * @param view 页面
//         * @param object instantiateItem返回的结果
//         * @return
//         */
//        @Override
//        public boolean isViewFromObject(View view, Object object) {
//            if (view == object) {
//                return true;
//            }else {
//                return false;
//            }
//        }
//
//        /**
//         * 释放资源
//         * @param container viewpager
//         * @param position 要释放的位置
//         * @param object 要释放的页面
//         */
//        @Override
//        public void destroyItem(ViewGroup container, int position, Object object) {
//            container.removeView((View) object);
//        }
//
//    }
//
//    class MyOnPageChangeListener implements ViewPager.OnPageChangeListener{
//        /**
//         * 当页面滚动了的时候回调这个方法
//         * @param position 当前页面的位置
//         * @param positionOffset 滑动页面的百分比
//         * @param positionOffsetPixels 在屏幕上滑动的像素
//         */
//        @Override
//        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//        }
//
//        /**
//         * 当某个页面被选中
//         * @param position 被选中的页面的位置
//         */
//        @Override
//        public void onPageSelected(int position) {
//            int realPosition = position%imageViews.size();
//            // 设置对应页面的文本信息
//            //tv_title.setText(imageDescriptions[position]);
////            tv_title.setText(imageDescriptions[realPosition]);
////            tv_body.setText(imageDescriptions2[realPosition]);
//            // 设置点点的颜色
////            ll_point_group.getChildAt(prePosition).setEnabled(false); // 上一页页面对应点点设置为灰色
//            //ll_point_group.getChildAt(position).setEnabled(true); // 当前页面对应点点设置为红色
////            ll_point_group.getChildAt(realPosition).setEnabled(true); // 当前页面对应点点设置为红色
//            //prePosition = position; // 记录当前点点
////            prePosition = realPosition; // 记录当前点点
//        }
//
//        /**
//         * 当页面滚动 状态的变化 回调这个方法
//         * 静止 -> 滑动
//         * 滑动 -> 静止
//         * 静止 -> 拖拽
//         * @param state
//         */
//        @Override
//        public void onPageScrollStateChanged(int state) {
//            if (state == ViewPager.SCROLL_STATE_DRAGGING){ // 拖动
//                System.out.println("拖动为真");
//                isDragging = true; // 拖动为真
//            }else if (state == ViewPager.SCROLL_STATE_SETTLING){ // 持续(滚动)
//
//            }else if (state == ViewPager.SCROLL_STATE_IDLE&&isDragging){ // 闲置(静止)
//                System.out.println("拖动为假");
//                isDragging = false; // 拖动为假
//                handler.removeCallbacksAndMessages(null);
//                handler.sendEmptyMessageDelayed(0,20*1000);
//            }
//        }
//    }
//
//    /**
//     * 实例化一个Handler 让轮播自动循环
//     */
//    @SuppressLint("HandlerLeak")
//    private Handler handler = new Handler(){
//        @Override
//        public void handleMessage(Message msg) {
//            super.handleMessage(msg);
//            int item = viewpager.getCurrentItem()+1;
//            viewpager.setCurrentItem(item);
//            // 延迟发消息
////            handler.sendEmptyMessageDelayed(0,5*1000);
//            handler.sendEmptyMessageDelayed(0,1);
//        }
//    };

}
